package com.soft.javase.ch05.enums;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/23
 *
 * 枚举
 * 1.枚举：一一列举 ， 多例模式
 * 2.语法
 *  [访问权限修饰符]  enum  枚举名{
 *     //public static final 静态的常量
 *  }
 *  注意：静态常量的类型，都是当前的枚举类型
 *
 *  3.查看枚举的class字节码
 *  第一种方式，out目录下找到class文件，通过IDEA自带的View->Show Bytecode
 *  第二种方式，cmd/IDEA自带的Terminal工具，通过javap EnumDemo1.class
 *  注意：枚举是不能在外部创建对象的，枚举的构造器默认是私有的。
 *
 *  4.使用场景：枚举通常用于做信息的标志和分类，例如：方位、性别、项目中与业务相关的错误代码、开档等
 *  5.枚举就是类，在类中能声明的，此处枚举中也可以声明
 *  6.使用枚举的好处：确保代码的严谨性和安全性
 *
 *
 *
 *  思考性问题：反射 破坏枚举呢？？？？
 */
public enum EnumDemo1 {

    //public static final 静态的常量
    MAN , WOMAN;

    public static EnumDemo1 getInstance(){
        return EnumDemo1.MAN;
    }

    public static void main(String[] args) {
        EnumDemo1 instance = EnumDemo1.getInstance();
        switch (instance){
            case MAN:
                System.out.println("MAN");
                break;
                case WOMAN:
                    System.out.println("WOMAN");
                    break;
            default:
                System.out.println("default");
                break;
        }
    }
}
